package hcn.protocol.ods.paymentXML;/**
 * @Auther: Administrator
 * @Date: 2019/4/20 13:01
 * @Description:
 */

import lombok.*;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import java.io.Serializable;
import java.util.List;

/**
 * @Author: zhusm@bsoft.com.cn
 * @Description: 获取已支付列表返回数据
 * @Create: 2019-04-20 13:01
 **/

public class GetPayedXMLResp implements Serializable {
    private static final long serialVersionUID = -2410933192880770180L;
    /**
     * patientCode : 患者在 his 中的唯一标识
     * patientMedicalCardType : 诊疗卡类型
     * patientMedicalCardNumber : 诊疗卡号
     * invoiceList : [{"invoiceNumber":"发票号码","costdate":"结算日期(yyyy-MM-dd HH:mm:ss)","medicalDate":"就诊日期(yyyy-MM-dd HH:mm:ss)","patientName":"病人姓名","sex":"病人性别","age":"病人年龄","diagnosisRecordId":"就诊记录标识","amount":"合计金额","invoiceStatus":"发票状态","costList":[{"costName":"检查单名称","feeTypeCode":"收费单据类型","feeNo":"收费单据标识","payedDate":"收费日期","feeDate":"费用日期","invoiceNo":"发票号码","barCode":"条码","totalFee":"金额","tollCollectorName":"收费员姓名","tollCollector":"收费员","costCode":"检查单id(即检查/检验项目)ID","mergingCode":"归并代码(1西药费、2中药费、3草药费、4检查费、5检验费、6代煎费、7快递费等)","executionStatus":"执行判别（0、已付款/未执行/待执行，1、表示已取药2、表示已执行3、标志已退费","execute":"执行科室 ","remark":"备注（比如哪里取药）"}]}]
     */

    private String SourcePatientId;
    private String MedicalCardType;
    private String patientMedicalCardNumber;
    private String MedicalCardId;
    /*病人姓名*/
    private String Name;
    private String Sex;
    private String Age;
    private List<InvoiceListBean> InvoiceLists;

    @XmlElement(name = "SourcePatientId")
    public String getSourcePatientId() {
        return SourcePatientId;
    }

    public void setSourcePatientId(String sourcePatientId) {
        SourcePatientId = sourcePatientId;
    }

    @XmlElement(name = "MedicalCardType")
    public String getMedicalCardType() {
        return MedicalCardType;
    }

    public void setMedicalCardType(String medicalCardType) {
        MedicalCardType = medicalCardType;
    }

    @XmlElement(name = "patientMedicalCardNumber")
    public String getPatientMedicalCardNumber() {
        return patientMedicalCardNumber;
    }

    public void setPatientMedicalCardNumber(String patientMedicalCardNumber) {
        this.patientMedicalCardNumber = patientMedicalCardNumber;
    }

    @XmlElement(name = "MedicalCardId")
    public String getMedicalCardId() {
        return MedicalCardId;
    }

    public void setMedicalCardId(String medicalCardId) {
        MedicalCardId = medicalCardId;
    }

    @XmlElement(name = "Name")
    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    @XmlElement(name = "Sex")
    public String getSex() {
        return Sex;
    }

    public void setSex(String sex) {
        Sex = sex;
    }

    @XmlElement(name = "Age")
    public String getAge() {
        return Age;
    }

    public void setAge(String age) {
        Age = age;
    }

    @XmlElementWrapper(name = "InvoiceLists")
    @XmlElement(name = "InvoiceList")
    public List<InvoiceListBean> getInvoiceLists() {
        return InvoiceLists;
    }

    public void setInvoiceLists(List<InvoiceListBean> invoiceLists) {
        InvoiceLists = invoiceLists;
    }

    public static class InvoiceListBean {
        /**
         * invoiceNumber : 发票号码
         * costDate : 结算日期(yyyy-MM-dd HH:mm:ss)
         * medicalDate : 就诊日期(yyyy-MM-dd HH:mm:ss)
         * diagnosisRecordId : 就诊记录标识
         * amount : 合计金额
         * invoiceStatus : 发票状态
         * costList : [{"costName":"检查单名称","feeTypeCode":"收费单据类型","feeNo":"收费单据标识","payedDate":"收费日期","feeDate":"费用日期","invoiceNo":"发票号码","barCode":"条码","totalFee":"金额","tollCollectorName":"收费员姓名","tollCollector":"收费员","costCode":"检查单id(即检查/检验项目)ID","mergingCode":"归并代码(1西药费、2中药费、3草药费、4检查费、5检验费、6代煎费、7快递费等)","executionStatus":"执行判别（0、已付款/未执行/待执行，1、表示已取药2、表示已执行3、标志已退费","execute":"执行科室 ","remark":"备注（比如哪里取药）"}]
         */
        /*VisitOrganization*/
        private String VisitOrganization;
        /*VisitOrganizationName*/
        private String VisitOrganizationName;
        /*支付状态: 1已支付2未支付3已退款*/
        private String PayStatus;
        private String InvoiceCode;
        /*结算标识*/
        private String PaymentNumber;
        private String SettleDateTime;
        private String VisitDateTime;
        /*就诊序号*/
//        private String VisitId;
        /*付款金额*/
        private String PayAmount;
        /*发票状态: 1未打印2已打印3已退费*/
        private String InvoiceStatus;
        /*费用日期(yyyy-MM-dd HH:mm:ss)*/
        private String CostDate;
        /*条码*/
        private String BarcodeNo;
        /*合计金额*/
        private String TotalCost;
        /*收费员姓名*/
        private String OperatorName;
        /*收费员工号*/
        private String OperatorId;
        private List<CostListBean> CostLists;

        @XmlElement(name = "VisitOrganization")
        public String getVisitOrganization() {
            return VisitOrganization;
        }

        public void setVisitOrganization(String visitOrganization) {
            VisitOrganization = visitOrganization;
        }

        @XmlElement(name = "VisitOrganizationName")
        public String getVisitOrganizationName() {
            return VisitOrganizationName;
        }

        public void setVisitOrganizationName(String visitOrganizationName) {
            VisitOrganizationName = visitOrganizationName;
        }

        @XmlElement(name = "PayStatus")
        public String getPayStatus() {
            return PayStatus;
        }

        public void setPayStatus(String payStatus) {
            PayStatus = payStatus;
        }

        @XmlElement(name = "InvoiceCode")
        public String getInvoiceCode() {
            return InvoiceCode;
        }

        public void setInvoiceCode(String invoiceCode) {
            InvoiceCode = invoiceCode;
        }

        @XmlElement(name = "SettleDateTime")
        public String getSettleDateTime() {
            return SettleDateTime;
        }

        public void setSettleDateTime(String settleDateTime) {
            SettleDateTime = settleDateTime;
        }

        @XmlElement(name = "VisitDateTime")
        public String getVisitDateTime() {
            return VisitDateTime;
        }

        public void setVisitDateTime(String visitDateTime) {
            VisitDateTime = visitDateTime;
        }

//        @XmlElement(name = "VisitId")
//        public String getVisitId() {
//            return VisitId;
//        }
//
//        public void setVisitId(String visitId) {
//            VisitId = visitId;
//        }

        @XmlElement(name = "PaymentNumber")
        public String getPaymentNumber() {
            return PaymentNumber;
        }

        public void setPaymentNumber(String paymentNumber) {
            PaymentNumber = paymentNumber;
        }

        @XmlElement(name = "PayAmount")
        public String getPayAmount() {
            return PayAmount;
        }

        public void setPayAmount(String payAmount) {
            PayAmount = payAmount;
        }

        @XmlElement(name = "InvoiceStatus")
        public String getInvoiceStatus() {
            return InvoiceStatus;
        }

        public void setInvoiceStatus(String invoiceStatus) {
            InvoiceStatus = invoiceStatus;
        }

        @XmlElement(name = "CostDate")
        public String getCostDate() {
            return CostDate;
        }

        public void setCostDate(String costDate) {
            CostDate = costDate;
        }

        @XmlElement(name = "BarcodeNo")
        public String getBarcodeNo() {
            return BarcodeNo;
        }

        public void setBarcodeNo(String barcodeNo) {
            BarcodeNo = barcodeNo;
        }

        @XmlElement(name = "TotalCost")
        public String getTotalCost() {
            return TotalCost;
        }

        public void setTotalCost(String totalCost) {
            TotalCost = totalCost;
        }

        @XmlElement(name = "OperatorName")
        public String getOperatorName() {
            return OperatorName;
        }

        public void setOperatorName(String operatorName) {
            OperatorName = operatorName;
        }

        @XmlElement(name = "OperatorId")
        public String getOperatorId() {
            return OperatorId;
        }

        public void setOperatorId(String operatorId) {
            OperatorId = operatorId;
        }

        @XmlElementWrapper(name = "CostLists")
        @XmlElement(name = "CostList")
        public List<CostListBean> getCostLists() {
            return CostLists;
        }

        public void setCostLists(List<CostListBean> costLists) {
            CostLists = costLists;
        }

        @XmlAccessorType(XmlAccessType.FIELD)
        public static class CostListBean {
            /**
             * mergingCode : 归并代码(1西药费、2中药费、3草药费、4检查费、5检验费、6代煎费、7快递费等)
             * executionStatus : 执行判别（0、已付款/未执行/待执行，1、表示已取药2、表示已执行3、标志已退费
             * execute : 执行科室
             * remark : 备注（比如哪里取药）
             */
            /*收费项目名称*/
            private String CostName;
            /*收费项目id*/
            private String CostId;
            /*归并代码*/
            private String CostItemId;
            /*费用归并名称*/
            private String CostItemName;
            private String ExecuteStatus;
            private String ExecutiveDepartment;
            private String Remark;

            public String getCostName() {
                return CostName;
            }

            public void setCostName(String costName) {
                CostName = costName;
            }

            public String getCostId() {
                return CostId;
            }

            public void setCostId(String costId) {
                CostId = costId;
            }

            public String getCostItemId() {
                return CostItemId;
            }

            public void setCostItemId(String costItemId) {
                CostItemId = costItemId;
            }

            public String getCostItemName() {
                return CostItemName;
            }

            public void setCostItemName(String costItemName) {
                CostItemName = costItemName;
            }

            public String getExecuteStatus() {
                return ExecuteStatus;
            }

            public void setExecuteStatus(String executeStatus) {
                ExecuteStatus = executeStatus;
            }

            public String getExecutiveDepartment() {
                return ExecutiveDepartment;
            }

            public void setExecutiveDepartment(String executiveDepartment) {
                ExecutiveDepartment = executiveDepartment;
            }

            public String getRemark() {
                return Remark;
            }

            public void setRemark(String remark) {
                Remark = remark;
            }
        }
    }
}
